ALB + EC2 (Nginx) の構成でバックエンド側 EC2 が停止・OS 内部に問題が発生している場合に ALB から返却される HTTP ステータスコードを確認してみた
はじめに
テクニカルサポートの 片方 です。
ALB + EC2 (Nginx) の構成でバックエンド側 EC2 が停止している場合と、OS 内部に問題が発生している場合のクライアントリクエストに対して ALB から返却される http ステータスコードを調査・確認する機会があったのでご紹介します。
先に結論から
- バックエンド側 EC2 インスタンスが停止している場合は、503 (503 Service Temporarily Unavailable) が返却されます。
- OS 側、内部の問題でバックエンド側 EC2 インスタンスが稼働できない様な状況の場合は、504 (504 Gateway Time-out) が返却されます。
HTTP 503: Service Unavailable
ロードバランサーのターゲットグループに登録済みターゲットがありません。
HTTP 504: Gateway Timeout
考えられる原因:
(略)
確認してみた
弊社ブログを参考に ALB + EC2 (Nginx) の検証環境を作成します。
作成が完了し、出力記載の ALB endpoint URL へのアクセスも問題ないことを確認します。
EC2 が停止している場合
準備完了したのでバックエンド側の EC2 インスタンスを停止します。
停止が完了したので ALB へアクセスします。
結果、503 (503 Service Temporarily Unavailable) が返却されました。
OS 内部に問題が発生している場合
意図的にインスタンスのステータスチェック の失敗を発生させます。EC2 インスタンスは起動している状況ですが、OS の内部に問題が発生している状況です。
インスタンスステータスチェックが発生したので、ALB へアクセスします。
結果、504 (504 Gateway Time-out) が返却されました。
まとめ
本ブログが誰かの参考になれば幸いです。
参考資料
- Application Load Balancer のトラブルシューティング - Elastic Load Balancing
- 検証用のALBを作成するCloudFormationテンプレート | DevelopersIO
- Amazon EC2 インスタンスのステータスチェック - Amazon Elastic Compute Cloud
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。